package org.ch04.test00.lx01;

import java.lang.reflect.Field;

/**
 * @author ZQX
 * @date 2025-03-31
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception {
        Student zs = new Student("张三", 28);

        // 第一：获取操作类的 Class 对象
        Class<Student> clazz = Student.class;

        // 第二：基于 Class 对象实现相关的操作
        // 1.获取 Student 类的 age 字段对象
        Field ageField = clazz.getDeclaredField("age");

        // 2.判断 age 字段对象上面是否存在 MinAge 注解
        if (ageField.isAnnotationPresent(MinAge.class)) {
            // 3.存在，则获取 age 字段对象注解的值
            // MinAge annotation = ageField
            //         .getAnnotation(MinAge.class);
            // int minAge = annotation.value();

            int minAge = ageField
                    .getAnnotation(MinAge.class)
                    .value();

            // 4.逻辑处理 - 增强程序功能
            if (zs.getAge() < minAge) {
                throw new RuntimeException("错误,年龄必须最低为：" + minAge);
            }
        }


        System.out.println(zs);
    }
}
